/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.util.Calendar;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import model.dominio.SessaoUsuario;
import model.dominio.TipoVeiculo;
import utilitario.ManipularArquivo;
import utilitario.ValidaException;

/**
 *
 * @author Braulio
 */
public class DaoTipoVeiculo extends DaoBase {

    /**
     * 
     * @author Braulio
     * @param tipo Tipo de veículo a ser salvo no banco de dados
     * @return true em caso de sucesso ao salvar, false em caso não seja possível salvar.
     */
    public static boolean cadastraTipoVeiculo(TipoVeiculo tipo) {
        try {
            ManipularArquivo.salvarNoArquivo(tipo);
            return true;
        } catch (ValidaException ex) {
            System.out.println(ex.getMessage());
            return false;
        }
    }

    public TipoVeiculo salvar(TipoVeiculo tipoVeiculo) {
        tipoVeiculo.setData_ultima_alteracao(Calendar.getInstance());
        tipoVeiculo.setUsuario(SessaoUsuario.getUsuarioLogado());
        return (TipoVeiculo) super.salvar(tipoVeiculo);
    }

    /**
     * @author Braulio
     * @return Lista com todos os tipos de veículos, ou null em caso de erro.
     */
    public List<TipoVeiculo> buscarTipos() {
        EntityManager em = super.getEntityManager();
        List lstResult = null;
        try {
            String strSQL = "SELECT t FROM TipoVeiculo t ";
            em.getTransaction().begin();
            lstResult = em.createQuery(strSQL).getResultList();
            em.close();
            //JOptionPane.showMessageDialog(null,lstResult.size());
        } catch (PersistenceException e) {
            lstResult = null;
        } finally {
            return (List<TipoVeiculo>) lstResult;
        }
    }

    public DaoTipoVeiculo() {
        super();
    }
}